package com.example.demo.suanfa_sort;

/**
 * @program: java_base
 * @description: 冒泡排序
 * @author: zhouhongtao
 * @happyCreateTime: 2022/03/06 11:06
 */
public class BubbleSortDemo {

    // 像水泡一样 ，两个数比较，谁大谁往后移动
    public static void bubbleSort(int[] arr) {
        if (arr == null || arr.length < 2) {
            return;
        }
        // 0 ~ N-1
        // 0 ~ N-2
        // 0 ~ N-3
        // 冒泡排序先排的是后面最大的
        for (int i = arr.length - 1; i > 0; i--) {
            for (int j = 0; j < i; j++) {
                if (arr[i] < arr[j]) {
                    swap(arr, i, j);
                }
            }
        }
    }

    // 交换arr的i和j位置上的值
    public static void swap(int[] arr, int i, int j) {
        arr[i] = arr[i] ^ arr[j];
        arr[j] = arr[i] ^ arr[j];
        arr[i] = arr[i] ^ arr[j];
    }

}
